package T11_20;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class T18 {
    public void setZeroes(int[][] matrix) {
        /*
        * 思路：1 先记录需要置为0的行和列
        * 2 再将对应的行和列置为0*/
        List<List<Integer>> lists=new ArrayList<>();
        int m=matrix.length;    //矩阵的行数
        int n=matrix[0].length; //矩阵的列数
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (matrix[i][j]==0)lists.add(Arrays.asList(i,j));
            }
        }
        for (int i = 0; i < lists.size(); i++) {
            int a=lists.get(i).get(0);  //值为0的元素对应的行数
            int b=lists.get(i).get(1);  //列数
            //将一整行置为0
            for (int j = 0; j < n; j++) {
                matrix[a][j]=0;
            }
            //将一整列置为0
            for (int j = 0; j < m; j++) {
                matrix[j][b]=0;
            }
            
        }

    }
}
